home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1994…tember: Reference Library / Dev.CD Sep 94.toast / Periodicals / develop / develop Issue 11 / develop 11 code / MultiBuffer / MultiBuffer Source / MainApp.r < prev    next >
Encoding:
Text File  |  1992-07-15  |  6.5 KB  |  200 lines  |  [TEXT/MPS ]

  1. #include "Types.r"
  2. #include "SysTypes.r"
  3. #include "MainApp.h"
  4.  
  5.  
  6.  
  7. //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  8. // These #defines are used to set enable/disable flags of a menu
  9.  
  10. #define AllItems    0b1111111111111111111111111111111    /* 31 flags */
  11. #define NoItems        0b0000000000000000000000000000000
  12. #define MenuItem1    0b0000000000000000000000000000001
  13. #define MenuItem2    0b0000000000000000000000000000010
  14. #define MenuItem3    0b0000000000000000000000000000100
  15. #define MenuItem4    0b0000000000000000000000000001000
  16. #define MenuItem5    0b0000000000000000000000000010000
  17. #define MenuItem6    0b0000000000000000000000000100000
  18. #define MenuItem7    0b0000000000000000000000001000000
  19. #define MenuItem8    0b0000000000000000000000010000000
  20. #define MenuItem9    0b0000000000000000000000100000000
  21. #define MenuItem10    0b0000000000000000000001000000000
  22. #define MenuItem11    0b0000000000000000000010000000000
  23. #define MenuItem12    0b0000000000000000000100000000000
  24. #define MenuItem13    0b0000000000000000001000000000000
  25. #define MenuItem14    0b0000000000000000010000000000000
  26. #define MenuItem15    0b0000000000000000100000000000000
  27. #define MenuItem16    0b0000000000000001000000000000000
  28. #define MenuItem17    0b0000000000000010000000000000000
  29. #define MenuItem18    0b0000000000000100000000000000000
  30. #define MenuItem19    0b0000000000001000000000000000000
  31. #define MenuItem20    0b0000000000010000000000000000000
  32. #define MenuItem21    0b0000000000100000000000000000000
  33. #define MenuItem22    0b0000000001000000000000000000000
  34. #define MenuItem23    0b0000000010000000000000000000000
  35. #define MenuItem24    0b0000000100000000000000000000000
  36. #define MenuItem25    0b0000001000000000000000000000000
  37. #define MenuItem26    0b0000010000000000000000000000000
  38. #define MenuItem27    0b0000100000000000000000000000000
  39. #define MenuItem28    0b0001000000000000000000000000000
  40. #define MenuItem29    0b0010000000000000000000000000000
  41. #define MenuItem30    0b0100000000000000000000000000000
  42. #define MenuItem31    0b1000000000000000000000000000000
  43.  
  44.  
  45. //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  46. // We use an MBAR resource to conveniently load all the menus 
  47.  
  48. resource 'MBAR' (rMenuBar, preload) {
  49.     { mApple, mFile, mEdit };
  50. };
  51.  
  52.  
  53. // Disable dashed line, enable About and DAs 
  54. resource 'MENU' (mApple, preload) {
  55.     mApple, textMenuProc, AllItems & ~MenuItem2, enabled, apple,
  56.     {
  57.         "About Sample…",    noicon, nokey, nomark, plain;
  58.         "-",                noicon, nokey, nomark, plain
  59.     }
  60. };
  61.  
  62. // enable all items 
  63. resource 'MENU' (mFile, preload) {
  64.     mFile, textMenuProc, AllItems, enabled, "File",
  65.     {
  66.         "Play…",            noicon, nokey, nomark, plain;
  67.         "Play Backwards…",    noicon, nokey, nomark, plain;
  68.         "Record…",            noicon, nokey, nomark, plain;
  69.         "Synthesize…",        noicon, nokey, nomark, plain;
  70.         "Kill Sound",        noicon, nokey, nomark, plain;
  71.         "-",                noicon, nokey, nomark, plain;
  72.         "Quit",                noicon, "Q", nomark, plain
  73.     }
  74. };
  75.  
  76. // disable everything, program does the enabling 
  77. resource 'MENU' (mEdit, preload) {
  78.     mEdit, textMenuProc, NoItems, enabled, "Edit",
  79.      {
  80.         "Undo",            noicon, "Z", nomark, plain;
  81.         "-",            noicon, nokey, nomark, plain;
  82.         "Cut",            noicon, "X", nomark, plain;
  83.         "Copy",            noicon, "C", nomark, plain;
  84.         "Paste",        noicon, "V", nomark, plain;
  85.         "Clear",        noicon, nokey, nomark, plain
  86.     }
  87. };
  88.  
  89. //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  90. // Our version resource.
  91.  
  92. resource 'vers' (1) {
  93.     0x1, 0x0, development, 0x0, verUS,
  94.     "1.0",
  95.     "1.0, Copyright © 1988-1990 Apple Computer, Inc."
  96. };
  97.  
  98.  
  99. //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  100. // Here is the quintessential MultiFinder friendliness device, the SIZE resource 
  101.  
  102. resource 'SIZE' (-1) {
  103.     dontSaveScreen,
  104.     acceptSuspendResumeEvents,
  105.     enableOptionSwitch,
  106.     canBackground,                // We can background; this means we don’t hog the
  107.                                 // Mac while we are in the background 
  108.     multiFinderAware,            // This says we do our own activate/deactivate; don’t
  109.                                 // fake us out 
  110.     backgroundAndForeground,    // This is definitely not a background-only application! 
  111.     dontGetFrontClicks,            // Change this is if you want “do first click” behavior
  112.                                 // like the Finder 
  113.     ignoreChildDiedEvents,        // Essentially, I’m not a debugger (sub-launching) 
  114.     is32BitCompatible,            // This app can be run in 32-bit address space 
  115.     reserved, reserved, reserved,
  116.     reserved, reserved, reserved, reserved,
  117.     kPrefSize,
  118.     kMinSize    
  119. };
  120.  
  121. //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  122. resource 'STR#' (rErrStrings, purgeable) {
  123.     {
  124.     "This System is too old, must be 6.0.2 or later";
  125.     "This application lost its menubar";
  126.     "Not enough memory, try adjusting the SIZE resource";
  127.     "Do not have a sound input device",
  128.     "Error attempting to record",
  129.     "Error getting sound channel",
  130.     "Sound Output Manager error",
  131.     "Sound Input Manager error",
  132.     "Resource Manager error",
  133.     "File System error",
  134.     "Unexpected error",
  135.     };
  136. };
  137.  
  138. //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  139. resource 'WIND' (rMainWindow, preload, purgeable) {
  140.     {40, 40, 170, 318}, noGrowDocProc, invisible, noGoAway, 0x0, "Controller", centerMainScreen
  141. };
  142.  
  143. resource 'CNTL' (rAmpButton, preload, purgeable) {
  144.     {16, 16, 16+16, 262}, kAmpDefault, visible, 128, 0, scrollBarProc, 0, "Amplitude"
  145. };
  146.  
  147. resource 'CNTL' (rPitchButton, preload, purgeable) {
  148.     {64, 16, 64+16, 262}, kPitchDefault, visible, 800, 80, scrollBarProc, 0, "Pitch"
  149. };
  150.  
  151. resource 'STR ' (rAmpButton, preload) {
  152.     "Amplitude Adjust"
  153. };
  154.  
  155. resource 'STR ' (rPitchButton, preload) {
  156.     "Pitch Adjust"
  157. };
  158.  
  159. //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  160.  
  161. resource 'ALRT' (rAboutAlert, purgeable) {
  162.     {40, 20, 160, 296},    rAboutAlert,
  163.     {    
  164.         /* [1] */    OK, visible, silent,
  165.         /* [2] */    OK, visible, silent,
  166.         /* [3] */    OK, visible, silent,
  167.         /* [4] */    OK, visible, silent
  168.     },
  169.     alertPositionMainScreen                                                                                              /* 0. */
  170. };
  171.  
  172. resource 'DITL' (rAboutAlert, purgeable) {
  173.     {    
  174.         /* [1] */    {88, 184, 108, 264},    Button {enabled, "OK"},
  175.         /* [2] */    {8, 8, 75, 240},        StaticText {disabled,
  176.                                             "Copyright © 1991 Apple Computer\n"
  177.                                             "Development version\n"
  178.                                             "Do not distribute"}
  179.     }
  180. };
  181.  
  182. resource 'ALRT' (rUserAlert, purgeable) {
  183.     {40, 20, 150, 260}, rUserAlert,
  184.     {    
  185.         /* [1] */    OK, visible, silent,
  186.         /* [2] */    OK, visible, silent,
  187.         /* [3] */    OK, visible, silent,
  188.         /* [4] */    OK, visible, silent
  189.     },
  190.     alertPositionParentWindow
  191. };
  192.  
  193. resource 'DITL' (rUserAlert, purgeable) {
  194.     {
  195.         /* [1] */    {80, 150, 100, 230},    Button {enabled, "OK"},
  196.         /* [2] */    {10, 60, 60, 230},        StaticText {disabled, "Error: ^0 ^1."},
  197.         /* [3] */    {8, 8, 40, 40},            Icon {disabled, 2}
  198.     }
  199. };
  200.